<html>
<head><meta charset="utf-8"><title>Reserving a keyword for asm in the new edition · t-lang · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/index.html">t-lang</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html">Reserving a keyword for asm in the new edition</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="194843003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194843003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194843003">(Apr 21 2020 at 18:26)</a>:</h4>
<p>I missed the meeting, but the point about reserving a keyword for <code>asm</code> is based on this issue by <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span>: <a href="https://github.com/rust-lang/project-inline-asm/issues/8" title="https://github.com/rust-lang/project-inline-asm/issues/8">https://github.com/rust-lang/project-inline-asm/issues/8</a></p>



<a name="194843037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194843037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194843037">(Apr 21 2020 at 18:27)</a>:</h4>
<blockquote>
<p>Macros expanding directly into internal compiler structures (AST) are rather an exception in <code>rustc</code> than a rule.<br>
The compiler frontend is in a process of migration to a token-based model (inspired by proc macros) where each macro expands to some actual non-macro syntax (token stream).</p>
<p>For inline assembly the surface syntax of that non-macro representation is not important right now, except that it should be unambiguous in the expression position, like <code>extern break box { ... }</code> or whatever.<br>
It can probably be wordy or unwieldy to write manually, but not necessarily.</p>
<p>What's important in my opinion is ability to lower different surface asm syntaxes into this common non-macro representation.<br>
Basically, if you are bikeshedding some <code>asm!(syntax1)</code> vs <code>asm!(syntax2)</code> alternative, make sure that both can be converted into a common non-macro form, so that the <code>asm!(syntax2)</code> alternative could always be implemented just as a different proc macro <code>my_asm!(syntax2)</code>.</p>
</blockquote>



<a name="194844375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194844375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194844375">(Apr 21 2020 at 18:36)</a>:</h4>
<p>Interesting. What's the underlying reason for that?</p>



<a name="194844417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194844417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194844417">(Apr 21 2020 at 18:36)</a>:</h4>
<p>Why does it matter that <code>asm!</code> be a macro that expands to tokens, rather than a first-class thing the compiler understands?</p>



<a name="194845264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845264">(Apr 21 2020 at 18:43)</a>:</h4>
<p>Basically this part:</p>
<blockquote>
<p>The compiler frontend is in a process of migration to a token-based model (inspired by proc macros) where each macro expands to some actual non-macro syntax (token stream).</p>
</blockquote>



<a name="194845604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845604">(Apr 21 2020 at 18:46)</a>:</h4>
<p>That's what I'm trying to understand. Why can the token not just be <code>asm!</code> ?</p>



<a name="194845639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845639">(Apr 21 2020 at 18:46)</a>:</h4>
<p>Or some other token that can't be written in the Rust language?</p>



<a name="194845751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845751">(Apr 21 2020 at 18:47)</a>:</h4>
<p>fwiw, I've been wanting to write a blog post</p>



<a name="194845758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845758">(Apr 21 2020 at 18:47)</a>:</h4>
<p>I get the idea of separating macro expansion from tokens, but why can't we just add an appropriate internal-use-only token for it to expand to?</p>



<a name="194845762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845762">(Apr 21 2020 at 18:47)</a>:</h4>
<p>that advocates for us to sometimes start with the approach of adding (stable) macros</p>



<a name="194845780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845780">(Apr 21 2020 at 18:47)</a>:</h4>
<p>probably with creepy names that aren't meant to be used by end users</p>



<a name="194845843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845843">(Apr 21 2020 at 18:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> s/aren't meant to be/can't be/ please? :)</p>



<a name="194845847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845847">(Apr 21 2020 at 18:48)</a>:</h4>
<p>with the intention that folks can use proc macros to experiment with syntaxes and so forth</p>



<a name="194845863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845863">(Apr 21 2020 at 18:48)</a>:</h4>
<p>no, I wrote what I meant</p>



<a name="194845868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845868">(Apr 21 2020 at 18:48)</a>:</h4>
<p>Ah.</p>



<a name="194845875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845875">(Apr 21 2020 at 18:48)</a>:</h4>
<p>I see.</p>



<a name="194845876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845876">(Apr 21 2020 at 18:48)</a>:</h4>
<p>well</p>



<a name="194845880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845880">(Apr 21 2020 at 18:48)</a>:</h4>
<p>I vote for <code>unsafe box { ... }</code> to be the new replacement for <code>asm!{ ... }</code></p>



<a name="194845891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845891">(Apr 21 2020 at 18:48)</a>:</h4>
<p>I think it's <em>plausible</em> for proc macros to generate those magic idents</p>



<a name="194845895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845895">(Apr 21 2020 at 18:48)</a>:</h4>
<p>I guess that would be ok too</p>



<a name="194845904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845904">(Apr 21 2020 at 18:48)</a>:</h4>
<p>I don't care too much about that detail, really</p>



<a name="194845923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845923">(Apr 21 2020 at 18:48)</a>:</h4>
<p>I forget where this came up recently</p>



<a name="194845934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845934">(Apr 21 2020 at 18:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I understand the goal now. But I'm hoping that the internal-use token can be unstable even if the macro syntax is stable?</p>



<a name="194845956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845956">(Apr 21 2020 at 18:49)</a>:</h4>
<p>I guess maybe around <code>yeet</code>/<code>throws</code>? I was thinking about it as a plausible route for something</p>



<a name="194845958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845958">(Apr 21 2020 at 18:49)</a>:</h4>
<p>(i.e., it seems very silly to me to reserve a whole new keyword for something that isn't meant to be exposed to end users in the first place.)</p>



<a name="194845983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845983">(Apr 21 2020 at 18:49)</a>:</h4>
<p><span class="user-mention" data-user-id="239881">@Josh Triplett</span> I guess? that's an impl detail</p>



<a name="194845994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194845994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194845994">(Apr 21 2020 at 18:49)</a>:</h4>
<p>the main thing is that I would want you to be able to use those proc macros on stable</p>



<a name="194846005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846005">(Apr 21 2020 at 18:49)</a>:</h4>
<p>Right.</p>



<a name="194846012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846012">(Apr 21 2020 at 18:49)</a>:</h4>
<p>and then maybe the proc macros get deprecated once there is a real lang feature that reaplces them</p>



<a name="194846015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846015">(Apr 21 2020 at 18:49)</a>:</h4>
<p>but the code keeps working</p>



<a name="194846019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846019">(Apr 21 2020 at 18:49)</a>:</h4>
<p>it's just "old"</p>



<a name="194846025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846025">(Apr 21 2020 at 18:49)</a>:</h4>
<p>So, for instance, the tokens could just as easily be something like <code>#[rustc_internal_asm] {}</code>.</p>



<a name="194846085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846085">(Apr 21 2020 at 18:50)</a>:</h4>
<p>right</p>



<a name="194846100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846100">(Apr 21 2020 at 18:50)</a>:</h4>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="194846103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846103">(Apr 21 2020 at 18:50)</a>:</h4>
<p>oh that's good</p>



<a name="194846138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846138">(Apr 21 2020 at 18:50)</a>:</h4>
<p>that said, for assembly</p>



<a name="194846151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846151">(Apr 21 2020 at 18:50)</a>:</h4>
<p>it seems like we might be leap-frogging this state</p>



<a name="194846160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846160">(Apr 21 2020 at 18:50)</a>:</h4>
<p>and I'd probably be ok with just <code>asm</code></p>



<a name="194846161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846161">(Apr 21 2020 at 18:50)</a>:</h4>
<p>but ...</p>



<a name="194846224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846224">(Apr 21 2020 at 18:51)</a>:</h4>
<p>But I can see the general case, and I'd be all for a <code>#[rustc_internal_yeet]</code> attribute.</p>



<a name="194846651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846651">(Apr 21 2020 at 18:55)</a>:</h4>
<p>it occurs to me that some kind of "namespace" like <code>foo::xxx! (..)</code> could be used for this</p>



<a name="194846663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846663">(Apr 21 2020 at 18:55)</a>:</h4>
<p>if we can just find some existing keyword that is suitable ;)</p>



<a name="194846667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846667">(Apr 21 2020 at 18:55)</a>:</h4>
<p><code>static::xxx!</code> of course, per the C++ tradition</p>



<a name="194846674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194846674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194846674">(Apr 21 2020 at 18:55)</a>:</h4>
<p>actually, that'd be kind of funny :)</p>



<a name="194847980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194847980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194847980">(Apr 21 2020 at 19:07)</a>:</h4>
<p><code>::meta::rustc_internal::</code> ?</p>



<a name="194848000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194848000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194848000">(Apr 21 2020 at 19:07)</a>:</h4>
<p>We did reserve <code>::meta</code> for just such an occasion. :)</p>



<a name="194852434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194852434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194852434">(Apr 21 2020 at 19:48)</a>:</h4>
<p>I still like <code>::static::asm!()</code>, but yes :)</p>



<a name="194853500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194853500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194853500">(Apr 21 2020 at 19:59)</a>:</h4>
<p>Does that mean proc macros would have to write <code>::r#static::</code>?</p>



<a name="194930588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194930588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194930588">(Apr 22 2020 at 13:33)</a>:</h4>
<p>well I imagined it as hack-y keyword in the grammar</p>



<a name="194958393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194958393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194958393">(Apr 22 2020 at 16:42)</a>:</h4>
<p><span class="user-mention" data-user-id="239881">@Josh Triplett</span> </p>
<blockquote>
<p>That's what I'm trying to understand. Why can the token not just be <code>asm!</code> ?</p>
</blockquote>
<p>Well, because you get infinite recursion.<br>
Macros produce tokens, tokens are then parsed, if the tokens are parsed into the same thing that produced it that's not good.</p>



<a name="194958615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194958615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194958615">(Apr 22 2020 at 16:44)</a>:</h4>
<p>With any kind of eager expansion, user-defined macros will need to be able to expand arbitrary macro calls to their non-macro forms as well, including <code>asm</code>.</p>



<a name="194958747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194958747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194958747">(Apr 22 2020 at 16:45)</a>:</h4>
<p>With sufficient amount of hacks we could keep expanding <code>asm!</code> into <code>asm!</code>, but why would we want it, if we could expand it into some unstable but proper syntax instead.</p>



<a name="194959757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194959757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194959757">(Apr 22 2020 at 16:53)</a>:</h4>
<p>I'm not sure what benefits we get from using the path syntax like <code>::static::asm</code> for asm blocks when they are clearly not paths.<br>
(Which would mean either exceptions in the parser to not treat <code>::static::asm</code> as a path, or hacks in resolve to not resolve paths if they look like <code>::static::asm</code>.)<br>
You can compose an unambiguous proper syntax like <code>static asm { ... }</code> from the same identifiers instead.</p>



<a name="194959981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194959981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194959981">(Apr 22 2020 at 16:55)</a>:</h4>
<p><code>static</code> looks more like something related to <code>global_asm!</code> though <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="194960154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194960154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194960154">(Apr 22 2020 at 16:56)</a>:</h4>
<p>Niko already explained the use case, so I understand why it needs to be a separate symbol. I do think it makes sense to use something like <code>#[rustc_internal_asm]</code> though, so we don't need separate reserved keywords.</p>



<a name="194960528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194960528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194960528">(Apr 22 2020 at 16:59)</a>:</h4>
<p>If <code>asm</code> is preceded by any other keyword, then we don't need to make it reserved itself.</p>



<a name="194960655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194960655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194960655">(Apr 22 2020 at 17:00)</a>:</h4>
<p>But that would then require prefixing it with some other keyword.</p>



<a name="194960853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194960853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194960853">(Apr 22 2020 at 17:01)</a>:</h4>
<p>Which is not a problem because it's unstable and only generated by <code>asm!</code> in most cases.</p>



<a name="194960863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194960863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194960863">(Apr 22 2020 at 17:01)</a>:</h4>
<p>Rather than artificially constructing a syntax just for the parser to re-digest, and telling people writing macros to generate that, we could use a straightforward, unique, clearly internal syntax.</p>



<a name="194960959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194960959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194960959">(Apr 22 2020 at 17:01)</a>:</h4>
<p>The suggestions with paths and attributes are anything but straightforward though.</p>



<a name="194961134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961134">(Apr 22 2020 at 17:03)</a>:</h4>
<p>Even if the underlying syntax ends up getting stabilized somewhere in Rust 2024, double keyword syntaxes like <code>unsafe asm { ... }</code> and <code>static unsafe asm { ... }</code> for global asm still look pretty good.</p>



<a name="194961329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961329">(Apr 22 2020 at 17:04)</a>:</h4>
<p>Plus Rust 2024 could reserve a single new keyword, but that's too much speculation already.</p>



<a name="194961407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961407">(Apr 22 2020 at 17:04)</a>:</h4>
<p>I don't expect the underlying syntax to get stabilized; it's there for experimentation in nightly.</p>



<a name="194961424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961424">(Apr 22 2020 at 17:04)</a>:</h4>
<p>But it'd be nice if it weren't something artificial.</p>



<a name="194961475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961475">(Apr 22 2020 at 17:05)</a>:</h4>
<p>Also, a syntax like <code>unsafe asm</code> closes off future language parsing possibilities. For instance, we've had requests for brace-less <code>unsafe</code> before.</p>



<a name="194961512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961512">(Apr 22 2020 at 17:05)</a>:</h4>
<p>Summary of my opinion: some arbitrary unstable but proper syntax is the most straightforward and least hacky way to resolve the linked issue.</p>



<a name="194961516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961516">(Apr 22 2020 at 17:05)</a>:</h4>
<p>Or, for that matter, <code>&amp;unsafe arbitrary_name</code> as a raw pointer syntax.</p>



<a name="194961723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961723">(Apr 22 2020 at 17:06)</a>:</h4>
<p>I'm curious: what in the parser makes <code>#[some_arbitrary_attribute]</code> painful to deal with? Is there some other extensible syntax that's more easily parsed later on?</p>



<a name="194961828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194961828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194961828">(Apr 22 2020 at 17:07)</a>:</h4>
<p><code>#[some_arbitrary_attribute]</code> is potentially a macro invocation itself, it's more a "semantic" than "syntactic" entity.</p>



<a name="194962804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194962804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194962804">(Apr 22 2020 at 17:14)</a>:</h4>
<p>Fair.</p>



<a name="194962916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194962916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194962916">(Apr 22 2020 at 17:15)</a>:</h4>
<p>Another possibility that seems like it might be more extensible: <code>extern "rustc_asm" { ... arbitrary ... }</code> ?</p>



<a name="194967374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194967374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sebastian Malton <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194967374">(Apr 22 2020 at 17:48)</a>:</h4>
<p>That sort of makes sense, since the asm is external to rust</p>



<a name="194970960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194970960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194970960">(Apr 22 2020 at 18:16)</a>:</h4>
<p>Yeah, something like <code>keyword literal</code> is ok too.</p>



<a name="194971277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194971277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194971277">(Apr 22 2020 at 18:18)</a>:</h4>
<p>(<code>extern "rustc_asm" {</code> specifically needs some relatively large lookahead to discern if from an extern block item though.)</p>



<a name="194971343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194971343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194971343">(Apr 22 2020 at 18:19)</a>:</h4>
<p>Fair. What <em>would</em> be easiest to parse and already has arbitrary extensibility without closing off future parsing avenues?</p>



<a name="194972289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194972289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194972289">(Apr 22 2020 at 18:27)</a>:</h4>
<p>I suggested <code>extern asm</code> in the issue.</p>



<a name="194972415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194972415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194972415">(Apr 22 2020 at 18:28)</a>:</h4>
<p>But as you said, it doesn't matter what syntax it expands to: since it's unstable, we can change it whenever we want.</p>



<a name="194984688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194984688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194984688">(Apr 22 2020 at 20:06)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> to clarify, I don't particularly care what we do, but what I was saying is that I would like to have some way for us to introduce <strong>stable syntax</strong> that is not meant for end-users to use, but only to be targeted by procedural macros. This would correspond to us exposing base capabilities but where we don't know yet what the full user syntax should be.</p>
<p>I am somewhat inspired by Ember's model, where they explicitly introduce functions and core capabilities,, and then encourage people to experiment "in user space" with different ways to expose those capabilities, and then later (in what they call an "Edition", obviously distinct from how we use the term) they survey those terms, synthesize one into the "final" result, and release it. </p>
<p>But the key point is that those "user space experiments" still work, because they were based on underlying capabilities.</p>
<p>Anyway, when I proposed e.g., <code>_::foo</code> as a syntax, it wasn't meant to be parsed as a <em>path</em> -- rather, when we start parsing paths, we would presumably look ahead for <code>_</code> followed by <code>::</code> and, if we see those two tokens, we would look at the next keyword and parse it directly into a <code>foo</code> AST node.</p>



<a name="194984776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194984776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194984776">(Apr 22 2020 at 20:07)</a>:</h4>
<p>So e.g. if we wanted to export <code>asm!</code> as such a "core capability" it might be <code>_::asm</code>. Anyway, it doesn't have to be <code>_::</code>, that's not the high-order bit, I mostly just wanted to find some bit of syntax that has no meaning and that we're happy committing to it having no meaning.</p>



<a name="194984797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194984797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194984797">(Apr 22 2020 at 20:07)</a>:</h4>
<p>Though for all I know that is legal in some way :)</p>



<a name="194984890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194984890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194984890">(Apr 22 2020 at 20:08)</a>:</h4>
<p>Part of my motivation here is that I think a good way to help defuse hot syntax debates is to have people gain <em>actual experience</em> using the various alternatives.</p>



<a name="194984908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194984908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194984908">(Apr 22 2020 at 20:08)</a>:</h4>
<p>At least it always clarifies my opinions immensly.</p>



<a name="194985415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/194985415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sebastian Malton <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#194985415">(Apr 22 2020 at 20:12)</a>:</h4>
<p>That makes a lot of sense, and I know that you said that <code>_::</code> isn't the point. However, it is one of the main contenders listed in <a href="https://internals.rust-lang.org/t/bring-enum-variants-in-scope-for-patterns/12104" title="https://internals.rust-lang.org/t/bring-enum-variants-in-scope-for-patterns/12104">https://internals.rust-lang.org/t/bring-enum-variants-in-scope-for-patterns/12104</a>.</p>
<p>I think that getting people to use various syntaxes would be useful, like with <code>.await</code></p>



<a name="195012377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195012377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195012377">(Apr 23 2020 at 02:10)</a>:</h4>
<p>Maybe we can reserve a contextual keyword called "experimental", and allow <code>Vis</code> <code>experimental</code> <code>{}</code> indefinitely.</p>
<div class="codehilite"><pre><span></span>#[library_defined_asm]
pub experimental {
        asm! {
        }
}
</pre></div>


<p>And let the macro rewrite the whole inner token stream into anything it's happy with.</p>



<a name="195415061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195415061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195415061">(Apr 27 2020 at 13:19)</a>:</h4>
<p><span class="user-mention" data-user-id="247082">@Sebastian Malton</span> good point re: <code>_::</code> and the enum variants</p>



<a name="195415157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195415157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195415157">(Apr 27 2020 at 13:19)</a>:</h4>
<p>another potion would be to grab some sigil like <code>%foo</code></p>



<a name="195429183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429183">(Apr 27 2020 at 14:56)</a>:</h4>
<p>That has a meaning already.</p>



<a name="195429236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429236">(Apr 27 2020 at 14:57)</a>:</h4>
<p>What meaning is that?</p>



<a name="195429256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429256">(Apr 27 2020 at 14:57)</a>:</h4>
<p>I think it has a meaning as a binary operator, but as a unary one?</p>



<a name="195429308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429308">(Apr 27 2020 at 14:57)</a>:</h4>
<p>Would that be unambiguous, though?</p>



<a name="195429317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429317">(Apr 27 2020 at 14:57)</a>:</h4>
<p>In any case, you can insert "favorite sigil here".. e.g. <code>$</code></p>



<a name="195429350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429350">(Apr 27 2020 at 14:57)</a>:</h4>
<p>sure, same way that <code>-22</code> and <code>22 - 44</code> is not ambiguous</p>



<a name="195429453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429453">(Apr 27 2020 at 14:58)</a>:</h4>
<p>but I think picking a fully unused sigil is probably preferable</p>



<a name="195429551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429551">(Apr 27 2020 at 14:59)</a>:</h4>
<p>Right, but that means the parser goes from "I can tell that's an error from the first token" to "expected asm after %", which seems like it'd confuse people.</p>



<a name="195429568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429568">(Apr 27 2020 at 14:59)</a>:</h4>
<p>Agreed.</p>



<a name="195429715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429715">(Apr 27 2020 at 15:00)</a>:</h4>
<p>An unused sigil or a keyword that doesn't have a meaning in this context.</p>



<a name="195429802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195429802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195429802">(Apr 27 2020 at 15:00)</a>:</h4>
<p>heck we could even actually use emoji :)</p>



<a name="195431521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195431521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195431521">(Apr 27 2020 at 15:12)</a>:</h4>
<p>Ow</p>



<a name="195450907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195450907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sebastian Malton <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195450907">(Apr 27 2020 at 17:35)</a>:</h4>
<p>Actually, using emoji for bikeshedding in general is probably not a terrible idea, since it makes it very clear that it is not a final design</p>



<a name="195457888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195457888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195457888">(Apr 27 2020 at 18:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="239881">Josh Triplett</span> <a href="#narrow/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition/near/195429715" title="#narrow/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition/near/195429715">said</a>:</p>
<blockquote>
<p>An unused sigil or a keyword that doesn't have a meaning in this context.</p>
</blockquote>
<p><code>\foo</code>?</p>



<a name="195470425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195470425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195470425">(Apr 27 2020 at 20:23)</a>:</h4>
<p>Anyways, I guess the core question is resolved: we don't need to reserve a new keyword and can just continue using the macro as the main entry point for inline assembly.</p>



<a name="195470440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Reserving%20a%20keyword%20for%20asm%20in%20the%20new%20edition/near/195470440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Reserving.20a.20keyword.20for.20asm.20in.20the.20new.20edition.html#195470440">(Apr 27 2020 at 20:23)</a>:</h4>
<p>The exact syntax we choose doesn't really matter.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>